package com.baitengsoft.patentapimonitor.api.service;

import com.baitengsoft.patentapimonitor.api.entity.RptApplicantEntity;
import com.baitengsoft.patentapimonitor.api.model.RptApplicantDataTypeInfo;
import com.baitengsoft.patentapimonitor.api.model.WebApplicantIndustryInfo;
import com.baitengsoft.patentapimonitor.api.model.WebApplicantInfo;
import com.baitengsoft.patentapimonitor.api.model.WebApplicantTypeInfo;
import com.baitengsoft.patentapimonitor.api.model.param.SearchApplicantAnalysisParam;
import com.baitengsoft.patentapimonitor.common.utils.PageResult;
import com.baitengsoft.patentapimonitor.common.utils.Res;

import java.util.List;

/**
 * 权利人报表服务类
 * @author Chen 2018/1/5
 */
public interface RptApplicantService extends BaseService<RptApplicantEntity> {
    /**
     * 获取权力人统计列表
     */
    PageResult<WebApplicantInfo> getApplicantAnalysisList(Integer platformid,SearchApplicantAnalysisParam param);

    /**
     * 导出权利人列表
     */
    List<WebApplicantInfo> getApplicantAnalysisAll(Integer platformid);

    /**
     * 获取搜索参数 区域名称和行业
     */
    Res getApplicantSearchParam(Integer platformid);

    /**
     * 获取数据范围：1当前有效量，2专利总量，3今年公开量，4今年授权量
     */
    List<RptApplicantDataTypeInfo> getApplicantDataType();

    /**
     * 获取权力人行业分布
     */
    List<WebApplicantIndustryInfo> getApplicantIndustry(Integer platformid,Integer dataTypeValue);

    /**
     * 权力人类型分布
     */
    List<WebApplicantTypeInfo> getApplicantType(Integer platformid,Integer dataTypeValue);

    /**
     * 专利大户排行
     */
    PageResult<WebApplicantInfo> getRank(Integer platformid, Integer type);
}
